﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace Biuro.Formy
{
    public partial class AddEditUserForm : Form
    {
        public delegate void DodawanieKlienta();
        public event DodawanieKlienta DodanyKlient;
        public delegate void EdytowanieKlienta();
        public event EdytowanieKlienta ZedytowanyKlient;
        public AddEditUserForm()
        {
            InitializeComponent();
        }
        public string TextNaPrzycisku
        {
            set{btDodaj.Text = value;}
        }

        public Int64 Pesel
        {
            get { return Int64.Parse(tbPesel.Text); }
            set { tbPesel.Text = value.ToString(); }
        }

        public string Pesel2
        {
            get { return tbPesel.Text; }
            set { tbPesel.Text = value.ToString(); }
        }

        public string Imie
        {
            get { return tbImie.Text; }
            set { tbImie.Text = value; }
        }
        public string Nazwisko
        {
            get { return tbNazwisko.Text; }
            set { tbNazwisko.Text = value; }
        }
        public string Miejscowosc
        {
            get { return tbMiejscowosc.Text; }
            set { tbMiejscowosc.Text = value; }
        }
        public string Kod
        {
            get { return tbKodPocztowy.Text; }
            set { tbKodPocztowy.Text = value; }
        }
        public string Telefon
        {
            get { return tbTelefon.Text; }
            set { tbTelefon.Text = value; }
        }
        public string Email
        {
            get { return tbEmail.Text; }
            set { tbEmail.Text = value; }
        }
        public string Ulica
        {
            get { return tbUlica.Text; }
            set { tbUlica.Text = value; }
        }
        private void btDodaj_Click(object sender, EventArgs e)
        {
            bool bledy = false;
            if (!Regex.IsMatch(tbImie.Text.ToLower(), @"\b\p{L}{2,25}\b"))
            {
                tbImie.BackColor = Color.Red;
                bledy = true;
            }
            else
            {
                tbImie.BackColor = Color.White;
            }

            if (!Regex.IsMatch(tbNazwisko.Text.ToLower(), @"\b\p{L}{2,50}\b"))
            {
                tbNazwisko.BackColor = Color.Red;
                bledy = true;
            }
            else
                tbNazwisko.BackColor = Color.White;

            if (!Regex.IsMatch(tbMiejscowosc.Text.ToLower(), @"\b[^0-9]{2,50}\b"))
            {
                tbMiejscowosc.BackColor = Color.Red;
                bledy = true;
            }
            else
                tbMiejscowosc.BackColor = Color.White;

            if (!Regex.IsMatch(tbPesel.Text, @"\b\d{10,11}\b"))
            {
                tbPesel.BackColor = Color.Red;
                bledy = true;
            }
            else
                tbPesel.BackColor = Color.White;

            if (!Regex.IsMatch(tbKodPocztowy.Text, @"\b\d{2}-\d{3}\b"))
            {
                tbKodPocztowy.BackColor = Color.Red;
                bledy = true;
            }
            else
                tbKodPocztowy.BackColor = Color.White;

            if ((!Regex.IsMatch(tbTelefon.Text.ToLower(), @"\b^[0-9\s\(\)\+\-]+$\b"))||(!(tbTelefon.Text.Length > 0)))
            {
                tbTelefon.BackColor = Color.Red;
                bledy = true;
            }
            else
                tbTelefon.BackColor = Color.White;

            if ((!Regex.IsMatch(tbEmail.Text.ToLower(), @"^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$")) && (tbEmail.TextLength > 0))
            {
                tbEmail.BackColor = Color.Red;
                bledy = true;
            }
            else
                tbEmail.BackColor = Color.White;

            if((!bledy) && (btDodaj.Text == "Dodaj"))
            {
                 if (DodanyKlient != null)
                     DodanyKlient();
                 MessageBox.Show("Event");
            }
            if ((!bledy) && (btDodaj.Text == "Zmień"))
            {
                if (ZedytowanyKlient != null)
                    ZedytowanyKlient();
            }
        }
        public void ZresetujPola()
        {
            tbImie.Text = "";
            tbImie.BackColor = Color.White;
            tbNazwisko.Text = "";
            tbNazwisko.BackColor = Color.White;
            tbPesel.Text = "";
            tbPesel.BackColor = Color.White;
            tbMiejscowosc.Text = "";
            tbMiejscowosc.BackColor = Color.White;
            tbPesel.Text = "";
            tbPesel.BackColor = Color.White;
            tbUlica.Text = "";
            tbUlica.BackColor = Color.White;
            tbKodPocztowy.Text = "";
            tbKodPocztowy.BackColor = Color.White;
            tbTelefon.Text = "";
            tbTelefon.BackColor = Color.White;
            tbEmail.Text = "";
            tbEmail.BackColor = Color.White;

        }

        private void AddEditUserForm_Paint(object sender, PaintEventArgs e)
        {
            System.Drawing.Drawing2D.LinearGradientBrush basebackground;
            basebackground = new System.Drawing.Drawing2D.LinearGradientBrush(new Point(0, 0), new Point(0, ClientSize.Height), Color.White, Color.LightGray);
            e.Graphics.FillRectangle(basebackground, ClientRectangle);
        }
    }
}
